Memory devices are typically provided as internal, semiconductor, integrated circuits in computers or other electronic devices. There are many different types of memory including random-access memory (RAM), read only memory (ROM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), and flash memory.
Flash memory devices have developed into a popular source of non-volatile memory for a wide range of electronic applications. Non-volatile memory is memory that can retain its stored data values for some extended period without the application of power. Common uses for flash memory and other non-volatile memory include personal computers, personal digital assistants (PDAs), digital cameras, digital media players, digital recorders, games, appliances, vehicles, wireless devices, mobile telephones and removable memory modules, and the uses for non-volatile memory continue to expand.
Flash memory devices typically use a one-transistor memory cell that allows for high memory densities, high reliability, and low power consumption. Storing data in a flash memory cell can be accomplished by changing the threshold voltage of the cell, through programming (e.g., “writing”) a charge storage node (e.g., a floating gate or trapping layers or other physical phenomena). By defining two or more ranges of threshold voltages to correspond to individual data values, one or more bits of information may be stored on each cell. Memory cells storing one bit of data by utilizing two threshold voltage ranges are typically referred to as Single Level Cell (SLC) memory cells. Memory cells storing more than one bit of data per cell by utilizing more than two possible threshold voltage ranges are typically referred to as Multilevel Cell (MLC) memory cells.
Flash memory typically utilizes one of two basic architectures known as NOR flash and NAND flash. The designation is derived from the logic used to read the devices. In NOR flash architecture, a column of memory cells are coupled in parallel with each memory cell coupled to a transfer line, often referred to as a bit line. In NAND flash architecture, a column (e.g., NAND string) of memory cells are coupled in series with only the first memory cell of the column coupled to a bit line.
In both NOR and NAND configurations, memory cells are typically arranged into arrays of rows and columns. The control gates of memory cells of a given row share the same control signal, which is often referred to as a word line. Programming of flash memory cells is accomplished by applying a high programming voltage to the word lines of the memory array in order to shift the threshold voltages of the memory cells. Because the memory cells of a given row are coupled to a common word line, each memory cell is therefore subjected to the high programming voltage applied to the word line. During a programming operation, some memory cells coupled to a given word line may reach their assigned threshold voltage before other memory cells coupled to the same word line reach their assigned threshold voltages. This condition is especially likely to occur in MLC memory. This can cause what is known in the art as program disturb issues which occur when memory cells continue to experience the effects of additional programming pulses after reaching their intended programming or voltage threshold level.
For the reasons stated above, and for other reasons that will become apparent to those skilled in the art upon reading and understanding the present specification, there is a need in the art for alternatives to existing programming schemes for flash memory devices.